home *** CD-ROM | disk | FTP | other *** search
/ SPACE 2 / SPACE - Library 2 - Volume 1.iso / program / 562 / perl4_10.zoo / README.ST < prev    next >
Encoding:
Text File  |  1991-10-09  |  4.9 KB  |  126 lines

  1. Here is a port of perl 4.0 Patchlevel 10 to the atariST series.
  2.  
  3. What you'll need:
  4.     - a decent shell (i use gulam for obvious reasons), other
  5.     highly recommended ones are bash 1.08, gemini/mufpel, okami,
  6.     microCsh, init from apratt for MiNT. avoid neodesk. avoid the
  7.     desktop like the plague. The shell should be setup to use
  8.     atari/mwc conventions for command lines and environment setup
  9.     and passing. (in gulam be sure to `set env_stle mw').
  10.  
  11.     - a decent set of file utils (ls, rm, mv, etc etc) in your $PATH.
  12.     if you dont have these, lookm on atari.archive. the gnuFileutils
  13.     are available there.
  14.     
  15.     - included here are echo and perlglob that you will need.
  16.  
  17.     - setting UNIXMODE is recommended but not required. If you are
  18.     going to run the perl tests, then set UNIXMODE to atleast
  19.     "/.,LAd", else you will get a lot of unnecessary failures.
  20.     (alternately you will have to go in and edit long path names.
  21.      get rid of things dealing with links, and rename paths
  22.      beginning with "/dev/..." etc)
  23.  
  24.     - if you are going to compile: you'll need gcc distribution,
  25.     (i used gcc-1.40 and libs at Patchlevel 73). Also you will
  26.     need the port of gdbm (i used v1.5). you'll also need bison.
  27.     all these are available on atari.archive, in atari/gnustuff/tos
  28.     (except gdbm, the diffs for gdbm are included here).
  29.     
  30. Compiling:
  31.     - get and install gnu gdbm (i used v1.5 -- see README.ST in
  32.       the gdbm distribution on how to make the gdbm library).
  33.     - get the perl kit at Patchlevel 10
  34.     - copy config.h atarist.c wildmat.c perlglob.c echo.c 
  35.       makefile.std and makefile from this directory
  36.     - apply the diffs in file `diffs' using patch
  37.     - apply a second set of diffs in file `diffs2' using patch.
  38.     - hit make -f makefile.st. (if you are not cross-compiling, 
  39.        you'll have to adjust the makefile yourself -- watchout for
  40.        perly.fixer).
  41.        This will result in 3 executables, perl.ttp, perlglob.ttp
  42.        and echo.ttp. Put all these executables in a sub-directory
  43.        in your $PATH
  44.     (if you use makefile.std instead of makefile.st, the executable
  45.      will be called perld.ttp. this is perl compiled with
  46.      -DDEBUGGING)
  47.  
  48. Testing:
  49.     - run perl from a decent shell. i use either gulam or bash
  50.     if you are going to be running from gulam, be sure to
  51.         set env_style mw
  52.     (this can be done automatically by including the above
  53.      line in the gulam.g startup file). bash always uses
  54.     atari/mwc conventions so you dont have to do anything special.
  55.     (if you run perl from the desktop, you are asking for trouble!)
  56.  
  57.     - you'll have to run the tests by hand. Almost all the tests
  58.     pass. You'll have to judge for yourself when a test fails
  59.     if it should have. I was able to explain all failures. If you
  60.     cant, ask me via mail. (one day i will cook up a script to
  61.     do this).
  62.     - It helps to have all the gnu fileutils in your PATH here.
  63.     Especially echo.
  64.     - Also a lot more tests will pass if you have UNIXMODE setup
  65.     i use "/.,LAd". If you dont use UNIXMODE, you'll have to hack
  66.     some of the tests.
  67.     - You may have to fix up a few Pathnames in the tests if you
  68.     are cd'ing to a particular sub-directory to run the tests.
  69.  
  70.     - Compare your tests with the results i got -- see file RESULTS.
  71.     
  72. General:
  73.     - setenv PERLLIB to point at the subdirectory containing lib/*
  74.     (if you want PERLLIB to contain more than one path, seperate
  75.      them with commas)
  76.     - UNIXMODE is supported not required.
  77.     - Pipes are a little flakey sometimes, but mostly work fine.
  78.     - to force binary mode use "binary FILE"
  79.     - browse thru config.h to see whats supported
  80.     - should MiNT'ize this much more.
  81.     - avoid using the backtick (`commands`). Use 'open(FOO, "command |")'
  82.     and use the filehandle FOO as appro.
  83.     - the command passed to system etc can contain
  84.     redirections of stdin/out, but system does not understand
  85.     fancy pipelines etc.
  86.     - syscall() will be used to make gemdos/bios/xbios/lineA
  87.     calls eventually. i have to complete this.
  88.     (note: we dont use ioctl like messy-dos to do this, as we can do
  89.      real ioctl's on devices)
  90.     - watch out for re-directions. TOS blows up if you try to
  91.     re-direct a re-directed handle. atari has supposedly
  92.     fixed this recently.
  93.     - in the perl libs (particularly perldb.pl) you will
  94.     need to s?/dev/tty?/dev/console?. perl -d works just fine.
  95.     for instance: (for this to work, UNIXMODE should include the
  96.     'd' option):
  97. *** /home/bammi/etc/src/perl/lib/perldb.pl    Tue Jun 11 17:40:17 1991
  98. --- perldb.pl    Mon Oct  7 21:46:28 1991
  99. ***************
  100. *** 49,56 ****
  101.   # 
  102.   #
  103.   
  104. ! open(IN, "</dev/tty") || open(IN,  "<&STDIN");    # so we don't dingle stdin
  105. ! open(OUT,">/dev/tty") || open(OUT, ">&STDOUT");    # so we don't dongle stdout
  106.   select(OUT);
  107.   $| = 1;                # for DB'OUT
  108.   select(STDOUT);
  109. --- 49,56 ----
  110.   # 
  111.   #
  112.   
  113. ! open(IN, "</dev/console") || open(IN,  "<&STDIN");    # so we don't dingle stdin
  114. ! open(OUT,">/dev/console") || open(OUT, ">&STDOUT");    # so we don't dongle stdout
  115.   select(OUT);
  116.   $| = 1;                # for DB'OUT
  117.   select(STDOUT);
  118.  
  119.  
  120. cheers,
  121. --
  122. bang:   uunet!cadence!bammi            jwahar r. bammi
  123. domain: bammi@cadence.com
  124. GEnie:    J.Bammi
  125. CIS:    71515,155
  126.